import { createStore } from 'vuex'
import {ref} from "vue";

export default createStore({
  // 定义所需要的状态
  state: { // 数据共享
    // name: 'hugo'

    list: [
      {title: '吃饭', complete: false},
      {title: '睡觉', complete: false},
      {title: '敲代码', complete: true},
    ]
  },
  // 同步修改 state 里面都是方法
  // 第一个是 state 第二个是需要修改的值
  mutations: {
    // setName(state, payload){
    //   state.name = payload
    //   // state.name.slice(0, 1)
    // }

    addTodo(state, payload){
      // 添加任务
      state.list.push(payload)
    },
    delTodo(state, payload){ // splice(下标，个数)
      // 删除任务
      state.list.splice(payload, 1)
    },
    clear(state, payload){
      // 清除已完成
      state.list = payload // 把过滤之后的数组传进来
    }
  },
  // 异步提交 mutations
  // 第一个参数是 store 第二个参数是修改的值
  actions: {
    // asyncSetName(store, params){
    //   setTimeout(()=>{
    //     // commit 是提交 mutations 调用 mutations 的方法
    //     store.commit('setName', params)
    //   }, 2000)
    // }
  },
  // 模块化
  modules: {
  }
})
